package com.ruoyi.system.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.system.domain.CmUserInfo;
import com.ruoyi.system.mapper.CmCourtBlockMapper;
import com.ruoyi.system.domain.CmCourtBlock;
import com.ruoyi.system.service.ICmCourtBlockService;
import com.ruoyi.common.core.text.Convert;

/**
 * 单元信息Service业务层处理
 * 
 * @author pop404NotFound
 * @date 2021-11-24
 */
@Service
public class CmCourtBlockServiceImpl implements ICmCourtBlockService 
{
    @Autowired
    private CmCourtBlockMapper cmCourtBlockMapper;

    /**
     * 查询单元信息
     * 
     * @param id 单元信息主键
     * @return 单元信息
     */
    @Override
    public CmCourtBlock selectCmCourtBlockById(Long id)
    {
        return cmCourtBlockMapper.selectCmCourtBlockById(id);
    }

    /**
     * 查询单元信息列表
     * 
     * @param cmCourtBlock 单元信息
     * @return 单元信息
     */
    @Override
    public List<CmCourtBlock> selectCmCourtBlockList(CmCourtBlock cmCourtBlock)
    {
        return cmCourtBlockMapper.selectCmCourtBlockList(cmCourtBlock);
    }

    /**
     * 新增单元信息
     * 
     * @param cmCourtBlock 单元信息
     * @return 结果
     */
    @Transactional
    @Override
    public int insertCmCourtBlock(CmCourtBlock cmCourtBlock)
    {
        int rows = cmCourtBlockMapper.insertCmCourtBlock(cmCourtBlock);
        insertCmUserInfo(cmCourtBlock);
        return rows;
    }

    /**
     * 修改单元信息
     * 
     * @param cmCourtBlock 单元信息
     * @return 结果
     */
//    @Transactional
//    @Override
//    public int updateCmCourtBlock(CmCourtBlock cmCourtBlock)
//    {
//        CmCourtBlock ScmCourtBlock = cmCourtBlockMapper.selectCmCourtBlockById(cmCourtBlock.getId());
//        if(!cmCourtBlock.equals(ScmCourtBlock)){
//            if(cmCourtBlock.getBlockname()!=ScmCourtBlock.getBlockname()||cmCourtBlock.getOwId()!=ScmCourtBlock.getOwId()){
//                cmCourtBlockMapper.updateCmCourtBlock(cmCourtBlock);
//            }
//            if(cmCourtBlock.getCmUserInfoList().size()!=ScmCourtBlock.getCmUserInfoList().size()){
////                for(int i=0;i<=)
//            }
//        }
//
//        cmCourtBlockMapper.deleteCmUserInfoByOwId(cmCourtBlock.getId());
//        insertCmUserInfo(cmCourtBlock);
//        return cmCourtBlockMapper.updateCmCourtBlock(cmCourtBlock);
//    }

    /**
     * 批量删除单元信息
     * 
     * @param ids 需要删除的单元信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteCmCourtBlockByIds(String ids)
    {

        return cmCourtBlockMapper.deleteCmCourtBlockByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除单元信息信息
     * 
     * @param id 单元信息主键
     * @return 结果
     */
//    @Transactional
//    @Override
//    public int deleteCmCourtBlockById(Long id)
//    {
//        cmCourtBlockMapper.deleteCmUserInfoByOwId(id);
//        return cmCourtBlockMapper.deleteCmCourtBlockById(id);
//    }

    /**
     * 新增居民信息管理信息
     * 
     * @param cmCourtBlock 单元信息对象
     */
    public void insertCmUserInfo(CmCourtBlock cmCourtBlock)
    {
        List<CmUserInfo> cmUserInfoList = cmCourtBlock.getCmUserInfoList();
        String id = cmCourtBlock.getOwId();
        if (StringUtils.isNotNull(cmUserInfoList))
        {
            List<CmUserInfo> list = new ArrayList<CmUserInfo>();
            for (CmUserInfo cmUserInfo : cmUserInfoList)
            {
                cmUserInfo.setOwId(id);
                list.add(cmUserInfo);
            }
            if (list.size() > 0)
            {
                cmCourtBlockMapper.batchCmUserInfo(list);
            }
        }
    }


    /**
     *
     * 更新关联个人信息
     *
     */
    public int updateCmUserInfo(Long id){
        return cmCourtBlockMapper.updateCmUserInfoByowId(id);
    }
}
